package cn.edu.ncu.housinghub.dto.request.contract;

import cn.edu.ncu.housinghub.entity.contract.Contract;
import cn.edu.ncu.housinghub.entity.contract.ContractContentInfo;
import cn.edu.ncu.housinghub.entity.house.House;
import cn.edu.ncu.housinghub.entity.user.Agent;
import cn.edu.ncu.housinghub.entity.user.Landlord;
import jakarta.validation.constraints.*;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

@Data
public class ContractRequest  {
    @NotNull
    private Long tenantId;

    @NotNull(message = "房东信息不能为空")
    private Long landlordId; // 房东ID
    @NotNull(message = "房源信息不能为空")
    private Long houseId; // 房源ID

    private Agent agent; // 中介信息

    @NotNull(message = "租赁开始日期不能为空")
    @Future(message = "租赁开始日期必须是未来日期")
    private LocalDate startDate; // 租赁开始日期

    @NotNull(message = "租赁结束日期不能为空")
    @Future(message = "租赁结束日期必须是未来日期")
    private LocalDate endDate; // 租赁结束日期

    @NotNull(message = "月租金不能为空")
    @Positive(message = "月租金必须大于0")
    private BigDecimal monthRent; // 月租金


    @Positive(message = "押金必须大于0")
    private BigDecimal deposit; // 押金

    @NotNull(message = "支付方式不能为空")
    @Min(value = 1, message = "支付方式必须为有效值")
    @Max(value = 3, message = "支付方式必须为有效值")
    private Integer paymentType; // 支付方式（1=月付，2=季付，3=年付）


}
